VPC Peering 과 Transit Gateway 어떻게 다를까
안녕하세요? 4월달에 클래스메소드에 입사한 이병현이라고합니다! 처음 한국어로 블로그를 작성하게 되네요. 잘 부탁드립니다. ?♂️
VPC 서비스 내에 있는 VPC Peering 과 Transit Gateway, 설명을 읽어보면 둘다 기본적으로 VPC 들을 연결시켜주는 서비스입니다. 그렇다면 둘의 차이점은 무엇인지, 어떤 경우에 사용해야 할 지 알아보려합니다.
VPC Peering 이란
VPC 피어링 연결은 프라이빗 IPv4 주소 또는 IPv6 주소를 사용하여 두 VPC 간에 트래픽을 라우팅할 수 있도록 하기 위한 두 VPC 사이의 네트워킹 연결입니다. 동일한 네트워크에 속하는 경우와 같이 VPC의 인스턴스가 서로 통신할 수 있습니다. 사용자의 자체 VPC 또는 다른 AWS 계정의 VPC와 VPC 피어링 연결을 만들 수 있습니다. VPC는 다른 리전에 있을 수 있습니다(리전간 VPC 피어링 연결이라고도 함).
Transit Gateway 란
AWS Transit Gateway는 고객이 자신의 Amazon Virtual Private Cloud(VPC)와 온프레미스 네트워크를 단일 게이트웨이에 연결할 수 있도록 지원해 주는 서비스입니다. AWS에서 실행하는 워크로드가 점차 늘어나고 있으므로 이러한 증가에 발맞추기 위해 여러 계정과 Amazon VPC 전반에서 네트워크를 확장할 수 있어야 합니다. 현재는 피어링을 사용하여 Amazon VPC의 페어를 연결할 수 있습니다. 그러나, 지점 간 연결 정책을 중앙에서 관리하는 기능 없이 여러 Amazon VPC 전반의 지점 간 연결을 관리하면 운영 비용이 많이 들고 번거로울 수 있습니다. 온프레미스 연결의 경우 AWS VPN을 각 Amazon VPC에 따로 연결해야 합니다. 이 솔루션은 구축하는 데 시간이 오래 걸리며 여러 VPC가 수백 개로 늘어나면 관리하기가 힘들어질 수 있습니다.
VPC Peering 과 Transit Gateway
서로 VPC 를 연결한다는 공톰점이 있지만 VPC 를 연결시에 생기는 구조에 차이가 있습니다.
예를 들면 3개의 VPC 와 1개의 On-Premises 를 모두 연결할 때 VPC Peering 과 Transit Gateway 의 차이는 아래의 그림과 같습니다. (On-Premises 는 VPN Connection 을 사용하여 연결 하였습니다.)
VPC Peering
Transit Gateway
VPC Peering 의 경우 VPC 와 VPC 즉 2개의 VPC 끼리만을 연결하기 때문에 여러 VPC 를 사용하게 되면 그에 따라 VPC Peering 의 개수도 증가하게 됩니다.
또한, On-Premises 를 모든 VPC 에 연결하기 위해서는 모든 VPC 에 VPN Connection 을 해주어야 합니다.
하지만, Transit Gateway 는 여러 VPC 를 한번에 연결할 수 있게 합니다. 또한 VPN Connection 도 Transit Gateway 에 연결 함으로써 VPN Connection 의 개수가 줄어들 수 있습니다. 이러한 특성 때문에 Transit Gateway 를 사용하게 되면 구조를 좀 더 단순한 형태로 만들 수 있습니다.
VPC Peering 과 Transit Gateway 의 공통점
- 리전간의 VPC 연결
- 다른 AWS 계정의 VPC 과의 연결
VPC Peering 은 모든 상용 리전(중국 제외) Transit Gateway 은 2020년 4월 부터 이하의 리전에서 리전간 VPC 연결을 지원하게 되었습니다.
Inter-region Transit Gateway peering is now available in US East (N. Virginia), US East (Ohio), US West (Oregon), US West (N. California), Canada (Central), EU (Ireland), EU (Frankfurt), EU (Paris), EU (London), EU (Stockholm), Asia Pacific (Mumbai), Asia Pacific (Tokyo), Asia Pacific (Seoul), Asia Pacific (Singapore), Asia Pacific (Sydney), and South America (Sao Paulo) AWS Regions.
AWS Transit Gateway now Supports Inter-Region Peering in 11 additional regions
다른 계정간 VPC 연결은 VPC Peering, Transit Gateway 모두 지원합니다.
After you share a transit gateway with another AWS account, the account owner can attach their VPCs to your transit gateway.
VPC Peering 과 Transit Gateway 의 차이점
대역폭
VPC Peering | Transit Gateway | |
---|---|---|
대역폭 | 제한 없음 | 50Gbps |
트래픽은 프라이빗 IP 공간 안에서 유지됩니다. 모든 리전 간 트래픽은 암호화되며 단일 장애 지점 또는 대역폭 제한이 없습니다.
Quotas for your transit gateways - Bandwidth
최대 구성 가능 개수
VPC 당 최대 VPC Peering 구성 가능한 개수는 125개입니다.
하지만 Transit Gateway 당 VPC 연결(Attachment)은 5000개 까지 가능하게 됩니다.
Quotas for your transit gateways - Attatchments
큰 규모의 네트워크 환경에서 한 VPC 당 125개가 넘는 VPC Peering 을 사용해야 할 경우 Transit Gateway 가 고려 될 수 있습니다.
하나의 Transit Gateway 로 다수의 VPC 를 연결할 수 있습니다. VPC Peering 은 사용할 VPC 를 모두 연결할 경우 아래의 공식에 따라 VPC Peering 의 개수가 필요해지게 됩니다.
VPC n개 당 n(n-1) / 2 개의 VPC Peering 이 필요합니다.
예) 10개의 VPC 를 모두 연결하려면 10(10 -1) / 2 = 45 개의 VPC Peering 이 필요하게 됩니다.
비용
VPC Peering
Transit Gateway
위 예시의 두 이미지를 가지고 계산 해 보겠습니다.
- 한달
- VPC 3개
- VPC 1000GB 데이터 전송
한달동안 VPC 3개를 모두 연결하고 데이터 1000GB를 전송 시 VPC Peering 과 Transit Gateway의 예상 비용입니다.
위 상황에서 각 VPC Peering 과 Transit Gateway 를 사용하였을 시 예상 비용입니다.
VPC Peering | Transit Gateway | |
---|---|---|
VPC 연결 비용 | 없음 | Hour per $0.07 (서울 리전) |
VPC 데이터 전송량 비용 | GB per $0.02 (송신 시 $0.01 수신 시 $0.01) |
GB per $0.02 |
예상 총 금액 | VPC 연결 비용 $0 VPC 데이터 전송 비용 $20 총 $20 |
VPC 연결 비용 $151.2 VPC 데이터 전송 비용 $20 총 $171.2 |
월 총 예상금액의 계산은 이와 같습니다.
- VPC Peering 의 경우 (연결 비용) + (데이터 전송 비용) X (데이터 용량)
0 + 0.02 X 1000 = $20
- Transit Gateway 의 경우 (시간당 연결 비용 X 하루 24시간 X 월 30일 X 연결된 VPC 개수) + (데이터 전송 비용) X (데이터 용량)
0.07 X 24 X 30 X 3 + 0.02 X 1000 = $171.2
데이터의 전송 비용은 동일하지만 연결된 VPC 개수당 연결 비용의 차이가 있습니다. Transit Gateway 를 사용할 경우 이러한 추가적인 비용이 생길 수 있습니다.
Transit Gateway VPC 연결 비용은 연결된 VPC 의 소유자에게 청구됩니다.
- On-Premises 에 VPN Connection 을 추가하여 계산 해 봅시다.
VPC Peering
Transit Gateway
- 한달
- VPC 3개
- VPC 1000GB 데이터 전송
- VPN Connection 3개
- VPN 1000GB 데이터 전송
VPC Peering 의 경우 On-Premises 를 사용할 때 모든 VPC 와 연결하려면 VPC 개수 만큼의 VPN Connection 이 필요합니다. 그래서 만약 VPC 가 많아지면 Transit Gateway 가 더 싸질 수도 있을까? 에 대한 생각으로 비용을 계산해보았습니다.
한달동안 VPC 3개를 서로 모두 연결하고 On-Premises 과도 모두 연결합니다. 또한 VPC 로 1000GB, VPN 으로 1000GB 전송 했을 시의 예상 비용입니다. 다만, Transit Gateway 는 1개의 VPN Connection 만으로도 VPC Peering 에서 VPN Connection 3개를 사용하는 것 같이 모든 VPC 와 연결을 할 수 있기 때문에 1개의 VPN Connection 으로 계산합니다.
VPN Connection 또한 Transit Gateway(이하 표에서는 'TGW') 에 attachment 하기 때문에 이 비용도 포함 됩니다.
VPC Peering | Transit Gateway | |
---|---|---|
VPC 연결 비용 | 없음 | Hour per $0.07 (서울 리전) |
VPC 데이터 전송량 비용 | GB per $0.02 (송신 시 $0.01 수신 시 $0.01) |
GB per $0.02 |
VPN 연결 비용 | Hour per $0.05 | Hour per $0.05 |
VPN 데이터 전송량 비용 | GB per $0.126 (서울 리전) |
GB per $0.126 (서울 리전) |
TGW VPN 연결(Attachment) 비용 | 없음 | Hour per $0.07 (서울 리전) |
예상 총 금액 | VPC 연결 비용 $0 VPC 데이터 전송 비용 $20 VPN 연결 비용 $108 VPN 데이터 전송 비용 $125.874 총 $253.874 |
VPC 연결 비용 $151.2 VPC 데이터 전송 비용 $20 VPN 연결 비용 $36 VPN 데이터 전송 비용 $125.874 TGW 에 VPN 연결(Attachment) 비용 총 $333.074 |
첫번째 경우에서 VPN 을 추가하여 계산합니다. 단, VPC 와 On-promises 를 모두 연결한다고 가정하였기 때문에 VPC Peering 의 경우는 VPN Connection 을 3개로 계산합니다.
- VPC Peering 의 경우 VPC 연결 비용 + VPC 데이터 전송 비용 + (VPN Connection 시간당 연결 비용 X 하루 24시간 X 월 30일 X VPN Connection 개수) + (데이터 전송 비용) X (데이터 용량) 단, 데이터 비용의 경우 월 첫 1GB 는 무료입니다.
0 + 20 + 0.05 X 24 X 30 X 3 + 0.126 X (1000 - 1) = $253.874
- Transit Gateway 의 경우 VPC 연결 비용 + VPC 데이터 전송 비용 + (VPN Connection 시간당 연결 비용 X 하루 24시간 X 월 30일 X VPN Connection 개수) + (데이터 전송 비용) X (데이터 용량) + {Transit Gateway 에 VPN Connection 연결(Attachment) 비용 X 하루 24시간 X 월 30일 X VPN Connection 연결(Attachment) 개수} 단, 데이터 비용의 경우 월 첫 1GB 는 무료입니다.
151.2 + 20 + 0.05 X 24 X 30 X 1 + 0.126 X (1000 - 1) + 0.07 X 24 X 30 X 1 = $383.474
On-Premises 가 모든 VPC 에 연결한다고 가정할 시 비용에서 차이가 크게 만들어진 부분은 VPN Connection 의 개수입니다. Transit Gateway 는 1개의 VPN Connection 을 사용하기 때문에 월 $36, VPC Peering 은 VPC 개수 당 VPN Connection 을 사용하기 때문에 월 $36 X VPC 개수 였습니다. 또한, Transit Gateway 는 1개의 VPN Connection 을 연결(Attachment) 했기 때문에 월 $50.4가 추가됩니다.
따라서 VPC 개수가 증가한다면 Transit Gateway 가 더 쌀 수도 있다고 생각하였지만, Transit Gateway 의 VPC 연결 비용이 월 $50.4 X VPC 개수 이기 때문에, VPC 가 증가한다면 Transit Gateway 가 더 많은 비용이 필요했습니다. {Transit Gateway 월 VPC 연결(Attachment) 비용} $50.4 X VPC 개수 > (VPC Peering 월 VPN Connection 비용) $36 X VPC 개수 였습니다.
결국 Transit Gateway 가 좀 더 단순한 구조를 만들어 줄 수 있지만 VPC Peering 보다 더 많은 비용이 필요 했습니다.
VPN 연결 요금은 Transit Gateway 소유자에게 청구됩니다.
VPN Connection 에서 전송되는 요금은 EC2 온디멘드 데이터 전송 요금이 부과됩니다. 또한, 수신시에는 요금이 없고 송신시에 요금이 책정됩니다.
정리
- Transit Gateway 을 사용하는게 좀 더 단순한 구조를 만들 수 있습니다, 하지만 VPC Peering 을 사용하는 경우보다 비용이 더 나오기 때문에, 대역폭의 제한이 문제가 될 수 있거나, 소수의 VPC 를 운용할 경우에는 VPC Peering 이 더 유용할 수 있다고 생각합니다.
- VPC Peering 과 Transit Gateway 를 각 특성에 맞게 부분적으로 사용하는 것도 방법 중 하나라고 생각합니다.
- On-Premises 를 다수의 VPC 에 연결해야 하는 경우 Transit Gateway 를 사용한다면 VPN Connection 을 줄여서 비용을 줄일 수 있다고 생각했지만 Transit Gateway VPC 연결 비용이 VPN Connection 비용보다 비싸기 때문에 Transit Gateway 가 비용이 더 나오게 됩니다.
마지막으로
VPC Peering 과 Transit Gateway 비슷하지만 차이가 있는 VPC 연결 방법들입니디. Transit Gateway 가 좀 더 향상된 버전이라고는 생각합니다만, 상황에 따라 VPC Peering 도 고려해야 한다고 생각합니다.
같은 VPC 서비스내에 있고 비슷한 기능이라고 생각했는데 꽤 다른 부분들이 있어서 알아보는 동안 재미있었습니다. 이 글이 다른 분들에게 도움이 되었으면 좋겠습니다! 읽어주셔서 감사합니다.
참고 링크
AWS Transit Gateway를 통한 Multi-VPC 아키텍처 패턴 - 강동환 솔루션즈 아키텍트(AWS) | AWS Summit Seoul 2019 Youtube
Building a Scalable and Secure Multi-VPC AWS Network Infrastructure | AWS 문서
Quotas for your transit gateways | AWS 문서